home *** CD-ROM | disk | FTP | other *** search
/ Mac Mania 4 / MacMania 4.toast / / Demo's / Igor Demo Pro / 1 PutContentsIn Igor Pro Folder / WaveMetrics Procedures / Utilities / Execute Cmd On List < prev    next >
Text File  |  1995-12-19  |  1KB  |  46 lines

  1. #include <Strings as Lists>
  2.  
  3. //    HR, 12/19/95. Version 1.1. Added ExecuteCmdOnQuotedList function.
  4.  
  5. //    ExecuteCmdOnList(cmdTemplate, list)
  6. //        Executes the specified command on each item in the list.
  7. //        list is a semicolon-separated list of items, usually wave names.
  8. //        cmdTemplate is an Igor command with "%s" in place of the item.
  9. //        NOTE: %s may occur only once in cmdTemplate.
  10. //        Example:
  11. //            Make wave0=x, wave1=2*x; ExecuteCmdOnList("AppendToGraph %s", "wave0;wave1")
  12. //
  13. //        If the list consists of wave names or data folder names that may be liberal names,
  14. //        call ExecuteCmdOnQuotedList instead of ExecuteCmdOnList.
  15.  
  16. Function ExecuteCmdOnList(cmdTemplate, list)
  17.     String cmdTemplate
  18.     String list
  19.     
  20.     String theItem                                // the item to operate on
  21.     Variable index=0
  22.     String cmd
  23.     
  24.     do
  25.         theItem= GetStrFromList(list, index, ";")
  26.         if (strlen(theItem) == 0)
  27.             break                                // ran out of items
  28.         endif
  29.         sprintf cmd, cmdTemplate, theItem
  30.         Execute cmd
  31.         index += 1
  32.     while (1)        // loop until break above
  33. End
  34.  
  35. // ExecuteCmdOnQuotedList(cmdTemplate, list)
  36. //        Use this instead of ExecuteCmdOnList if the list contains wave or data folder names.
  37. //        It creates a local copy of the list, adding single quotes for liberal names and then
  38. //        calls ExecuteCmdOnList.
  39. Function ExecuteCmdOnQuotedList(cmdTemplate, list)
  40.     String cmdTemplate
  41.     String list
  42.     
  43.     String quotedList = PossiblyQuoteList(list, ";")
  44.     ExecuteCmdOnList(cmdTemplate, quotedList)
  45. End
  46.